# regex_replace.py功能为基于正则规则进行文本内容的快速替换。
# v1.0 创建
#      结果文件另存原路径
#      支持拖拽文件
#      支持输入替换规则
#
#
#

import sys
import re

def replace_text(file_path, pattern, replacement):
    with open(file_path, 'r', encoding='utf-8') as file:
        content = file.read()
    
    # 使用正则表达式进行替换
    new_content = re.sub(pattern, replacement, content)
    
    # 生成新的文件名
    new_file_path = file_path.rsplit('.', 1)[0] + '_replaced.' + file_path.rsplit('.', 1)[1]
    
    with open(new_file_path, 'w', encoding='utf-8') as file:
        file.write(new_content)
    
    return new_file_path

def main():
    if len(sys.argv) < 2:
        print("请将txt文件拖拽到此脚本上执行。")
        return
    
    file_path = sys.argv[1]
    
    # 默认替换规则
    default_pattern = r':cite\[(.*?)\]'
    default_replacement = r'^[\1]^'
    
    print(f"已加载文件: {file_path}")
    print("按回车键执行默认替换规则: :cite[*] -> ^[*]^")
    print("或输入自定义替换规则，格式为: 替换前,替换后")
    
    user_input = input("请输入: ")
    
    if user_input == "":
        pattern = default_pattern
        replacement = default_replacement
    else:
        try:
            pattern, replacement = user_input.split(',')
        except ValueError:
            print("输入格式错误，请按照 替换前,替换后 的格式输入。")
            return
    
    new_file_path = replace_text(file_path, pattern, replacement)
    print(f"替换完成，新文件已保存为: {new_file_path}")

if __name__ == "__main__":
    main()